package br.com.saab.quantotempofalta;

import java.awt.TrayIcon;

import javax.annotation.PostConstruct;
import javax.swing.ImageIcon;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import br.com.saab.quantotempofalta.listener.AbreHorariosFormListener;
import br.com.saab.quantotempofalta.negocio.observer.ControladorHorasTrabalhadas;
import br.com.saab.quantotempofalta.negocio.observer.Terminooou;

/**
 * Classe que representa o ícone que vai ficar na bandeja (tray) do SO.
 * 
 * @author Felipe
 */
@Component
public class IconeBandeja extends TrayIcon implements Terminooou {
	
	private final String TITULO_AVISO_1 = "Acabooou!  \\o/";
	private final String TITULO_AVISO_2 = "Terminou o expediente. =]";
	private final String TITULO_AVISO_3 = "Chega de trabalhar! ¬¬";
	
	private final String MENSAGEM_AVISO_1 = "Já deu sua carga horária!! Agora é só descansar!";
	private final String MENSAGEM_AVISO_2 = "Beleza! Agora é hora de ir embora...";
	private final String MENSAGEM_AVISO_3 = "Tá de sacanagem comigo né? Vai embora!!!";

	@Autowired
	private ControladorHorasTrabalhadas controladorHorasTrabalhadas;
	
	@Autowired
	public IconeBandeja(AbreHorariosFormListener abreHorarios) {
		super(new ImageIcon(IconeBandeja.class.getResource("/br/com/saab/quantotempofalta/images/home.png"), "iconeBandeja").getImage(), "Quanto tempo falta?");
		
		addActionListener(abreHorarios);
	}
	
	@PostConstruct
	@SuppressWarnings("unused")
	private void meAvisaQuandoDerAHora() {
		controladorHorasTrabalhadas.addTerminooouListener(this);
	}

	@Override
	public void finalmenteAcabouODia(int numAviso) {
		switch (numAviso) {
		case 0:
			displayMessage(TITULO_AVISO_1, MENSAGEM_AVISO_1, TrayIcon.MessageType.INFO);
			break;
		case 1:
			displayMessage(TITULO_AVISO_2, MENSAGEM_AVISO_2, TrayIcon.MessageType.INFO);
			break;
		case 2:
			displayMessage(TITULO_AVISO_3, MENSAGEM_AVISO_3, TrayIcon.MessageType.INFO);
			break;
		}
	}

}
